<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var b = 10;
        //         (function b() {
        //             // 内部作用域，会先去查找是有已有变量b的声明，有就直接赋值20，确实有了呀。发现了具名函数 function b(){}，拿此b做赋值；
        //    // IIFE的函数无法进行赋值（内部机制，类似const定义的常量），所以无效。
        //   // （这里说的“内部机制”，想搞清楚，需要去查阅一些资料，弄明白IIFE在JS引擎的工作方式，堆栈存储IIFE的方式等）
        //             b = 20;
        //             console.log(b)
        //         })()

        // (function b(b) {
        //     b = 20;
        //     console.log(b);
        // })(b)
        // console.log(10)

        // var a = 10;
        // (function () {
        //     console.log(a)
        //     a = 5
        //     console.log(window.a)
        //     var a = 20;
        //     console.log(a)
        // })()

        function fun(x){
            console.log(arguments);
            // console.log(x)
            return x;
        }
        console.log(fun(1,2,3,4));
    </script>
</body>

</html>